The purpose of this library is to provide an OpenGL [`Context`] on as many
platforms as possible.
# Building a [`WindowedContext`]
A [`WindowedContext`] is composed of a [`Window`] and an OpenGL
[`Context`].
Due to some operating-system-specific quirks, glutin prefers control over
the order of creation of the [`Context`] and [`Window`]. Here is an example
of building a [`WindowedContext`]:
```no_run
# fn main() {
let el = glutin::event_loop::EventLoop::new();
let wb = glutin::window::WindowBuilder::new()
.with_title("Hello world!")
.with_inner_size(glutin::dpi::LogicalSize::new(1024.0, 768.0));
let windowed_context = glutin::ContextBuilder::new()
.build_windowed(wb, &el)
.unwrap();
# }
```
You can, of course, create a [`RawContext`] separately from an existing
window, however that may result in an suboptimal configuration of the window
on some platforms. In that case use the unsafe platform-specific
[`RawContextExt`] available on unix operating systems and Windows.
You can also produce headless [`Context`]s via the
[`ContextBuilder::build_headless`] function.
[`Window`]: window/struct.Window.html
[`Context`]: struct.Context.html
[`WindowedContext`]: type.WindowedContext.html
[`RawContext`]: type.RawContext.html